Determining driving state variables

ABSTRACT

A method ( 100 ) of determining driving state variables of a motor vehicle ( 105 ) includes scanning an input vector (u) of signals, which influence the driving state of the motor vehicle ( 105 ); scanning a first output vector (y) of variables, which describe the driving state of the motor vehicle ( 105 ); determining a second output vector (ŷ) of variables that describe the driving state of the motor vehicle ( 105 ) based on the input vector (u), a weighting vector (r) and a state vector ({circumflex over (x)}); and adapting the weighting vector based on the difference between the two output vectors (y, ŷ). In doing so, the observer includes a Kalman filter.

This application is a National Stage completion of PCT/EP2017/066466 filed Jul. 3, 2017, which claims priority from German patent application serial no. 10 2016 214 064.7 filed Jul. 29, 2016.

FIELD OF THE INVENTION

The invention relates to determining driving state variables of a motor vehicle. In particular, the invention relates to modeling the motor vehicle to determine the driving state variables.

BACKGROUND OF THE INVENTION

To understand and to assess the dynamics of a motor vehicle, or to enable the prediction or control of the motor vehicle, the state variables describing the movement of the motor vehicle have to be determined. For example, the ground speed of a motor vehicle can be determined using a speed sensor mounted at a wheel. The determination can be improved by using a plurality of speed sensors mounted at a plurality of wheels. However, this determination can be inaccurate, for instance if the slip exceeds predetermined critical value at several wheels. There are also state variables, which cannot be determined directly or not without significant additional effort, e.g. a float angle.

SUMMARY OF THE INVENTION

The invention addresses the problem of specifying a technology that allows for an improved determination of driving state variables of a motor vehicle. The invention solves the problem by means of the subject matter of the independent claims. Dependent claims describe preferred embodiments.

It is proposed to use an observer based on a Kalman filter to achieve a very accurate mapping of an input vector of dynamic input values of the motor vehicle to an output vector. From the many different variants of Kalman filters available, one especially suitable variant is presented, which combines a good estimate of the state variable for this problem at an acceptable amount of time required for processing. In addition, a physical model of the motor vehicle is specified, on which the Kalman filter is based and that enables the accurate determination or prediction of state variables for this problem. The combination of preferred embodiments of the Kalman filter and the physical model of the motor vehicle can yield convincing results, on which control of the motor vehicle can be based. Typically, the motor vehicle comprises four wheels (front left, front right, rear left, and rear right), but other forms of motor vehicles can be supported, for example a single-track vehicle having two wheels or a two-track vehicle having more than two axles.

A method to determine driving state variables of a motor vehicle involves the steps of scanning a vector of input values that determine the driving state of the motor vehicle; scanning a first output vector of values, which describe the driving state of the motor vehicle; determining a second output vector of variables that describe the driving state of the motor vehicle based on the input vector, a state vector and a weighting vector; and the adjustment of the weighting vector based on the difference between the two output vectors. The observer described in that way is implemented using a Kalman filter.

The observer describes the behavior of the motor state vehicle by appropriately converting the input vector into an output vector using a physical model of the motor vehicle. The difference between the output vector determined relating to the observer and the output vector determined by the motor vehicle is fed back to the observer for weighting the mapping. Thus, the observer can map the behavior of the real motor vehicle by minimizing the difference between the output vectors.

The observer is based on a physical model of the motor vehicle, which is described further below. The physical model of the motor vehicle is preferably designed in a way that a multitude of driving state variables, which describe the dynamic behavior of the motor vehicle, can be determined without providing a specific sensor for every driving state variable. These driving state variables can be included in the state vector. A number of sensors to determine the driving state variables can be reduced. In addition, an error of measurement can be reduced. Every determined driving state variable can potentially be determined based on the measurement values of the input vector u and the output vector y, such that the accuracy of determination, the certainty of determination, or the speed of determination can be optimized. The observer can be used to better predict or estimate driving state variables that are difficult to determine using conventional methods, for instance a float angle.

Preferably the observer includes an “Unscented Kalman Filter” (UKF). The UKF enables an accurate determination of the desired driving state variables and requires acceptable processing capacities. In particular noisy measurements can only have little impact on the performance of the UKF. The UKF can be used to improve processing in real time, for example on board the motor vehicle. In particular preferably, the UKF includes a “Square Root Unscented Kalman Filter” (SR-UKF). The SR-UKF can be processed significantly faster than the UKF; under certain conditions, a 20% reduction of the required computation time compared to the UKF can be achieved. Different, non-linear observation algorithms can be used in other embodiments as well.

The proposed physical model of the motor vehicle is described in more detail below. In general, it is preferred that the input vector includes rotational speeds or, alternatively, angular speeds of the wheels of the motor vehicle and the wheel angles. The output vector preferably includes accelerations of the motor vehicle in longitudinal and transverse directions and a yaw rate. Based on the observer, driving state variables, which comprise at least a wheel force in longitudinal, vertical and transversal directions, can be determined; a wheel slip; a slip angle; a float angle, and a vehicle ground speed in longitudinal or transversal directions. Driving state variables relating to the wheel are preferably specified for every wheel of the motor vehicle.

It is preferred that the second output vector is determined based on a physical model, which can, for example, be expressed as equations of motion. In another preferred embodiment, adhesion coefficients between the tires of the motor vehicle and a roadway or an underground are determined and the physical model is modified on the basis of the specific coefficient of adhesions.

In this way, the relation between movement of a tire to the movement of the motor vehicle on the roadway can be determined.

If the observer includes a UKF, in particular a standard UKF, then the covariance matrix of measurements R^(n) for a first variant can be modified as follows:

${R_{k}^{n} = {{\frac{1}{m}{\sum\limits_{j = 1}^{m}\; {v_{k - j} \cdot v_{k - j}^{T}}}} - {P_{{\overset{\sim}{y}}_{k},{\overset{\sim}{y}}_{k + 1}}R_{k + 1}^{n}}}},$

wherein v_(k−j)=y_(k−j)−y _(k−j) ⁻ is fixed and m≥IϵIN can be chosen arbitrarily. In a different variant, which can be used with an arbitrary non-linear Kalman filter as the observer, the covariance matrix R^(n) of measurements is modified by means of a linear slave Kalman filter.

A computer program product comprises program code means for the implementation of the described method, if the computer program product runs on a processing device or is stored on a machine-readable data-storage medium.

A device for determining driving state variables of a motor vehicle implements a Kalman filter and is suited to implement the method described above. In particular, the device can comprise a programmable microcomputer. In that way, discrete-time processing can be executed in fixed time periods. The processing can be done in real time, i.e., specific processing times have a guaranteed maximum time.

The motor vehicle can be controlled based on the determined driving state variables. For example, an active chassis control, a break control, the control of a power train, or the control of an active or passive safety system on board the vehicle can be based on one or a plurality of the determined driving state variables.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention will now be described in more detail with reference to the attached figures, in which:

FIG. 1 describes a method; and

FIG. 2 describes a motor vehicle having different variables

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

FIG. 1 shows a schematic representation of a method 100 for determining one or a plurality of driving state variables of a real motor vehicle 105 by means of an observer 110. The observer 110 can be regarded as a method and implemented by means of a programmable microcomputer, for instance. In that sense, the observer 100 can also be viewed as a device for determining driving state variables.

An input vector u includes measured values of the motor vehicle 105, for example wheel revolutions per minute n_(i) or, alternatively, angular speeds ω_(i) and wheel angles δ_(i) of the individual wheels. These measurement values can be sampled using assigned sensors. For instance, an angular speed of a wheel ω_(i) can be measured using a magnetic or optical encoder.

The state of the motor vehicle 105 is described by a state vector x, which can include the vehicle speeds v_(x), v_(y) or a yaw rate {dot over (ψ)}. Typically, not all elements of the state vector x can be observed. A change {dot over (x)} in the state vector x is made based on a current state vector x and the input vector u. This influence can be seen as a function ƒ(x,u), which is generally not exactly known. Based on a function h(x), the influence results in an output vector y, which can comprise variables such as vehicle accelerations a_(x), a_(y) or the yaw rate {dot over (ψ)}. These variables variables can again be measured using appropriate sensors. For example, the acceleration can be measured using an inertia sensor and the yaw rate can be measured using a yaw rate sensor. These sensors can be designed micromechanically.

The mapping of the input vector u by the real motor vehicle 105 should be simulated as accurately as possible by means of an observer 110. In that way, an algorithm for determining driving state variables of the motor vehicle 105, which can be used to determine or predict driving state variables of the motor vehicle 105, is to be generated. Variables that relate to the observer 110 instead of the real motor vehicle 105 are denoted by a caret (e.g. â instead of a).

A physical model of the motor vehicle 115 implements a function ƒ({circumflex over (x)}, u, r), which maps the state vector {circumflex over (x)} of the observer 110 to a change {circumflex over ({dot over (x)})} of the state vector of the observer 110, based on the input vector u and a correction vector r. Based on a function h({circumflex over (x)}), this change results in an output vector ŷ of the observer 110. The physical model of the motor vehicle 115 describes the driving characteristics of the motor vehicle 105 based in particular on physical interrelationships.

The difference between the output vector y and the output vector ŷ of the observer 110 is determined and transformed into the vector r by means of a so-called feedback matrix K. In this way, the error of the observer 110 is fed back to minimize it as much as possible.

The observer 110 has reached its steady state after a few passes through the feedback loop. Then, the output vector ŷ approximately equates to the output vector y of the real motor vehicle 105. Therefore, every element of the output vector ŷ can be determined quickly and accurately based on all elements elements of the input vector u and the output vector y. In that way, on the one hand, every element can be determined correctly, as potentially many measurement values have to be taken into account, on the other hand, even elements difficult to measure can be determined. For example, a float angle between the direction of movement of the motor vehicle 105 in the center of gravity CoG and the longitudinal axis of the vehicle can be determined without requiring an optical measuring system or a measuring wheel.

The determined elements typically include state variables of the motor vehicle and, for example, can be used to control the motor vehicle 105. For example, the determined speed of the motor vehicle can be used to control a brake system having anti-skid brakes (ABS), or a speed assistance system for controlling the speed at a predefined value, or be used by an electronic stability program (ESP). Other functionalities to control the movement or a convenience function of the motor vehicle 105 can also be based on the driving state variables determined by the observer 110. Of course driving state variables other than the speed can be utilized as well.

The method of the observer 110 is now mathematically described in greater detail. FIG. 2 shows related variables of the motor vehicle 105.

Definitions

In general, the following notations apply: R rear F front FL left front wheel FR right front wheel RL left rear wheel RR right rear wheel I in longitudinal direction (in the wheel coordinate system) s in lateral or transversal direction (in the wheel coordinate system) CoG center of gravity, origin of the motor vehicle/chassis coordinate system m vehicle mass Jz gyration moment of inertia h_(COG) height of the center of gravity of the vehicle above ground g gravitational acceleration b_(F) track width of the motor vehicle at the front axle (front) b_(R) track width of the motor vehicle at the rear axle (rear) I_(F) distance of the front axle from the center of gravity along the longitudinal axis I_(R) distance of the rear axle from the center of gravity along the longitudinal axis v speed, in relation to the wheels V speed, in relation to the center of gravity or the vehicle/chassis coordinate system a acceleration {dot over (ψ)} yaw speed={dot over (ψ)} R^(v) covariance matrix of the noise due to process noise R^(n) covariance matrix of the noise due to measuring noise B_(l); D_(l); Ca_(l); E_(l); B_(s); D_(s); Ca_(s); E_(s): parameters of the tire model according to Pacejka F force x x direction (longitudinal axis in the vehicle/chassis coordinate system) y y direction (longitudinal axis in the vehicle/chassis coordinate system) z z direction (longitudinal axis in the vehicle/chassis coordinate system) α slip angle: angle between the rotation level of a wheel and its direction of movement α0 track correction (in the range of less than 1°) β float angle δ wheel angle ω angular speed of the wheel Sl slip in longitudinal direction Ss slip in transversal direction n number of revolutions of the wheel (alternative to the angular speed of the wheel) vdiff difference in speed between the peripheral speed of the wheel and the resulting longitudinal speed of the wheel at the wheel contact patch μ coefficient of adhesion factor correction factor for the coefficient of adhesion kfs correction factor for the lateral forces on the wheel

Speeds at the Wheel Contact Patch

vx _(FL) =Vx−{dot over (ψ)}·b _(F)/2

vx _(FR) =Vx−{dot over (ψ)}·b _(F)/2

vx _(RL) =Vx−{dot over (ψ)}·b _(R)/2

vx _(FR) =Vx−{dot over (ψ)}·b _(R)/2

vy _(FL) =Vy−{dot over (ψ)}·l _(F)

vy _(FR) =Vy−{dot over (ψ)}·l _(F)

vy _(RL) =Vy−{dot over (ψ)}·l _(R)

vy _(RR) =Vy−{dot over (ψ)}·l _(R)

Computation of the Slip Angle

α_(FL)=−δ_(FL)+arctan(vy _(FL) /vx _(FL))+α0_(FL)

α_(FR)=−δ_(FR)+arctan(vy _(FR) /vx _(FR))+α0_(FR)

α_(RL)=arctan(vy _(RL) /vx _(RL))+α0_(RL)

α_(RR)=arctan(vy _(RR) /vx _(RR))+α0_(RR)

Resulting Longitudinal Speeds of the Wheel at the Wheel Contact Patch

Vl _(FL)=√{square root over ((vx _(FL))²+(vy _(FL))²)}·cos(α_(FL))

Vl _(FR)=√{square root over ((vx _(FR))²+(vy _(FR))²)}·cos(α_(FR))

Vl _(RL)=√{square root over ((vx _(RL))²+(vy _(RL))²)}·cos(α_(RL))

Vl _(RR)=√{square root over ((vx _(RR))²+(vy _(RR))²)}·cos(α_(RR))

Switchover Between Drive Slip and Brake Slip

vdiff_(FL) =R _(FL)·ω_(FL) −vl _(FL)

if (vdiff_(FL)>0):

Sl _(FL)=1−vl _(FL)/(R _(FL)·ω_(FL));

or, if (vdiff_(FL)<0):

Sl _(FL)=(R _(FL)·ω_(FL))/vl _(FL)−1;

or, if (vdiff_(FL)=0):

Sl _(FL)=0.

vdiff_(FR) =R _(FR)·ω_(FR) −vl _(FR)

if (vdiff_(FR)>0):

Sl _(FR)=1−vl _(FR)/(R _(FR)·ω_(FR));

or, if (vdiff_(FL)<0):

Sl _(FR)=(R _(FR)·ω_(FR))/vl _(FR)−1;

or, if (vdiff_(FR)=0):

Sl _(FR)=0.

vdiff_(RL) =R _(RL)·ω_(RL) −vl _(RL)

if (vdiff_(RL)>0):

Sl _(RL)=1−vl _(RL)/(R _(RL)·ω_(RL));

or, if (vdiff_(RL)<0):

Sl _(RL)=(R _(RL)·ω_(RL))/vl _(RL)−1;

or, if (vdiff_(RL)=0):

Sl _(RL)=0.

vdiff_(RR) =R _(RR)·ω_(RR) −vl _(RR)

if (vdiff_(RR)>0):

Sl _(RR)=1−vl _(RR)/(R _(RR)·ω_(RR));

or, if (vdiff_(RR)<0):

Sl _(RL)=(R _(RR)·ω_(RR))/vl _(RR)−1;

or, if (vdiff_(RR)=0):

Sl _(RR)=0.

Ss _(FL)=α_(FL)

Ss _(FR)=α_(FR)

Ss _(RL)=α_(RL)

Ss _(RR)=α_(RR)

Resulting Slip

Sres_(FL)=√{square root over ((Sl _(FL))²·(Ss _(FL))²)}

Sres_(FR)=√{square root over ((Sl _(FR))²·(Ss _(FR))²)}

Sres_(RL)=√{square root over ((Sl _(RL))²·(Ss _(RL))²)}

Sres_(RR)=√{square root over ((Sl _(RR))²·(Ss _(RR))²)}

Coefficient of Adhesion Longitudinal According to the Tire Model by Pacejka

μl _(FL)=μ_(factor,l,FL) ·Dl·sin(Ca _(l)·arctan(Bl·Sl _(FL) −El·(Bl·Sl _(FL)−arctan(Bl·Sl _(FL)))))

μl _(FR)=μ_(factor,l,FR) ·Dl·sin(Ca _(l)·arctan(Bl·Sl _(FR) −El·(Bl·Sl _(FR)−arctan(Bl·Sl _(FR)))))

μl _(RL)=μ_(factor,l,RL) ·Dl·sin(Ca _(l)·arctan(Bl·Sl _(RL) −El·(Bl·Sl _(RL)−arctan(Bl·Sl _(RL)))))

μl _(RR)=μ_(factor,l,RR) ·Dl·sin(Ca _(l)·arctan(Bl·Sl _(RR) −El·(Bl·Sl _(RR)−arctan(Bl·Sl _(RR)))))

Adhesion Coefficient Transversal According to the Tire Model by Pacejka

μs _(FL)=μ_(factor,s,FL) ·Ds·sin(Ca _(s)·arctan(Bs·Ss _(FL)·(Bs·Ss _(FL)−arctan(Bs·Ss _(FL)))))

μs _(FR)=μ_(factor,s,FR) ·Ds·sin(Ca _(s)·arctan(Bs·Ss _(FR)·(Bs·Ss _(FR)−arctan(Bs·Ss _(FR)))))

μs _(RL)=μ_(factor,s,RL) ·Ds·sin(Ca _(s)·arctan(Bs·Ss _(RL)·(Bs·Ss _(RL)−arctan(Bs·Ss _(RL)))))

μs _(RR)=μ_(factor,s,RR) ·Ds·sin(Ca _(s)·arctan(Bs·Ss _(RR)·(Bs·Ss _(RR)−arctan(Bs·Ss _(RR)))))

Modification of the Adhesion Coefficients

In another preferred embodiment, the physical model of the motor vehicle described is adapted to the prevalent traction conditions based on the adhesion coefficients described above. It has to be observed that this adaptation can be used with any other non-linear observer algorithm.

The respective values are determined based on a measured acceleration a and an estimated acceleration â and then subtracted from each other. The resulting difference can be filtered before feeding it into a time-discrete integrator

$\left( \frac{K \cdot {Ts}}{z - 1} \right).$

The correction factors for every coefficient of adhesion μ_(factor_l_FL), μ_(factor_l_FR), μ_(factor_l_RL) and μ_(factor_l_RR), if the respective longitudinal accelerations are used, as well as μ_(factor_s_FL), μ_(factor_s_FR), μ_(factor_s_RL) and μ_(factor_l_RR), if the respective transversal accelerations are used, can be determined based on the output of the integrator. The previously determined coefficients of adhesion μ_(s) and μ_(l) can then be multiplied by a correction factor before further processing is performed.

$\mu_{{factor},i} = {\frac{K \cdot {Ts}}{z - 1}\left( {{a_{x}} - {{\hat{a}}_{x}}} \right)}$ $\mu_{{factor},s} = {\frac{K \cdot {Ts}}{z - 1}\left( {{a_{y}} - {{\hat{a}}_{y}}} \right)}$

Resulting Coefficients of Adhesion

μres_(FL)=√{square root over ((μl _(FL))²+(μs _(FL))²)}

μres_(FR)=√{square root over ((μl _(FR))²+(μs _(FR))²)}

μres_(RL)=√{square root over ((μl _(RL))²+(μs _(RL))²)}

μres_(RR)=√{square root over ((μl _(RR))²+(μs _(RR))²)}

Vertical Wheel Forces

$F_{F}^{norm} = {m\left( \frac{{l_{R}g} - {h_{COG}a_{x}}}{l_{F} + l_{R}} \right)}$ $F_{R}^{norm} = {m\left( \frac{{l_{F}g} + {h_{COG}a_{x}}}{l_{F} + l_{R}} \right)}$ ${Fz}_{FL} = {\left( {\frac{1}{2} - {\frac{h_{COG}}{b_{F}}\frac{a_{y}}{g}}} \right)F_{F}^{norm}}$ ${Fz}_{FR} = {\left( {\frac{1}{2} + {\frac{h_{COG}}{b_{F}}\frac{a_{y}}{g}}} \right)F_{F}^{norm}}$ ${Fz}_{RL} = {\left( {\frac{1}{2} - {\frac{h_{COG}}{b_{R}}\frac{a_{y}}{g}}} \right)F_{R}^{norm}}$ ${Fz}_{RR} = {\left( {\frac{1}{2} + {\frac{h_{COG}}{b_{R}}\frac{a_{y}}{g}}} \right)F_{R}^{norm}}$

Longitudinal Wheel Forces

Fl _(FL) =Sl _(FL) /Sres_(FL)·μres_(FL) ·Fz _(FL)

Fl _(FR) =Sl _(FR) /Sres_(FR)·μres_(FR) ·Fz _(FR)

Fl _(RL) =Sl _(RL) /Sres_(RL)·μres_(RL) ·Fz _(RL)

Fl _(RR) =Sl _(RR) /Sres_(RR)·μres_(RR) ·Fz _(RR)

Lateral Wheel Forces

Fs _(FL) =−kfs _(FL)·(Ss _(FL) /Sres_(FL)·μres_(FL) Fz _(FL))

Fs _(FR) =−kfs _(FR)·(Ss _(FR) /Sres_(FR)·μres_(FR) Fz _(FR))

Fs _(RL) =−kfs _(RL)·(Ss _(RL) /Sres_(RL)·μres_(RL) Fz _(RL))

Fs _(RR) =−kfs _(RR)·(Ss _(RR) /Sres_(RR)·μres_(RR) Fz _(RR))

Forced transformed into the vehicle/chassis coordinate system (specific to the center of gravity CoG)

Fx_CoG_(FL) =Fl _(FL)·cos(δ_(FL))−Fs _(FL)·sin(δ_(FL))

Fx_CoG_(FR) =Fl _(FR)·cos(δ_(FR))−Fs _(FR)·sin(δ_(FR))

Fx_CoG_(RL) =Fl _(RL)

Fx_CoG_(RR) =Fl _(RR)

Fy_CoG_(FL) =Fl _(FL)·sin(δ_(FL))−Fs _(FL)·cos(δ_(FL))

Fy_CoG_(FR) =Fl _(FR)·sin(δ_(FR))−Fs _(FR)·cos(δ_(FR))

Fy_CoG_(RL) =Fl _(RL)

Fy_CoG_(RR) =Fl _(RR)

Wind Resistance

Fw=C_AER_X·A_L·ρ_AER/2·(Vx)²

ax=1/m·(Fx_CoG_(FL) +Fx_CoG_(FR) +Fx_CoG_(RL) +Fx_Cog_(RR) −Fw)+{dot over (Ψ)}·Vy  Equation of motion f1

ay=1/m·(Fy_CoG_(FL) +Fy_CoG_(FR) +Fy_CoG_(RL) +Fy_Cog_(RR))+{dot over (Ψ)}·Vx  Equation of motion f2

{umlaut over (ψ)}=1/Jz·(Fx_CoG_(FR) ·b _(F)/2+Fy_CoG_(FR) ·l _(F) −Fx_CoG_(FL) ·b _(F)/2+Fy_CoG_(FL) ·l _(F) +Fx_CoG_(RR) ·b _(R)/2−Fy_CoG_(RR) ·l _(R) −Fx_CoG_(RL) ·b _(R)/2−Fy_CoG_(RL) ·l _(R))  Equation of motion f3

The equations shown above characterize the preferred physical model that forms the basis of observer 110 in FIG. 1. It must be observed that the physical model of the motor vehicle described can be used with any arbitrary non-linear observer algorithm. Conversely, the observer described can work with any other physical model of the motor vehicle.

The observer 110 can be implemented using different non-linear Kalman filters, but a “Standard Unscented Kalman Filter” (UKF) is particularly preferred.

Modification of the Covariance Matrix of Measurements

Alternative 1:

When using a standard UKF, the covariance matrix R^(n) can be modified as follows.

${R_{k}^{n} = {{\frac{1}{m}{\sum\limits_{j = 1}^{m}\; {v_{k - j} \cdot v_{k - j}^{T}}}} - {P_{{\overset{\sim}{y}}_{k},{\overset{\sim}{y}}_{k + 1}}R_{k + 1}^{n}}}},$

wherein v_(k−j)=y_(k−j)−ŷ_(k−j) ⁻ is fixed and m≥1ϵIN can be chosen arbitrarily as needed.

Also see “Covariance matching based adaptive unscented Kalman filter for direct filtering in INS/GNSS integration”, Yang Meng (*), Shesheng Gao (*), Yongmin Zhong (**), Gaoge Hu (*), Aleksandar Subic (***). Where: (*) School of Automatics, Northwestern Polytechnical University, Xi'an, China (**) School of Aerospace, Mechanical and Manufacturing Engineering, RMIT University, Australia (***) Swinbume Research and Development, Swinburne University of Technology, Hawthorn, Australia.

Alternative 2:

The covariance matrix of measurements R^(n) of an arbitrary, non-linear Kalman filter can generally be modified by means of a linear slave Kalman filter as described in “Adaptive Unscented Kalman Filter and its Applications in Nonlinear Control”; Jianda Han, Qi Song and Yuqine He, State Key Laboratory of Robotics, Shenyang Institute of Automation, Chinese Academy of Sciences, P.R. China, chapter 4.

Kalman Filter

Below, preferred Kalman filters are described in more detail. The description was taken and adapted from “The Square-Root Unscented Kalman Filter for State and Parameter-Estimation”; Rudolph van der Merwe, Eric A. Wan; Oregon Graduate Institute of Science and Technology; 20000 NW Walker Road, Beaverton, Oreg. 97006, USA. A person skilled in the art should be familiar with the notations and terms used in the explanations below. Refer to the specified publication for more details.

In the past years, the Extended Kalman Filter (EKF) has become the preferred algorithm for many non-linear estimates and self-learning algorithms. The EKF applies the method of a linear standard Kalman filter to the linearization of a really non-linear system. This approach is often flawed and results in divergences. Therefore, it is preferred to use a UKF in the application at hand. In that way, a notably improved determination of driving state variables can be achieved. The computational complexity of a standard UKF using (O(L³)) is comparable to that of an EKF.

An estimation of the state of a time-discrete, non-linear, dynamic system is to be performed.

x _(k+1) =F(x _(k) ,u _(k))+v _(k)  (eq. 1)

y _(k) =H(x _(k))+n _(k),  (eq. 2)

where x_(k) refers to the observed state vector of the system, u_(k) refers to a known input vector and y_(k) refers to the observed output vector.

Initialization:

x ₀=

[x ₀]P ₀=

[(x ₀ −{circumflex over (x)} ₀)(x ₀ −{circumflex over (x)} ₀)^(T)]  (eq. 5)

for kϵ(1, . . . , ∞)

Determination of sigma points

χ_(k−1)=[{circumflex over (x)} _(k−1) {circumflex over (x)} _(k−1)+γ√{square root over (P _(k−1))}{circumflex over (x)} _(k−1)−γ√{square root over (P _(k−1))}]  (eq. 6)

Update:

$\begin{matrix} {\chi_{k{k - 1}}^{*} = {F\left\lbrack {\chi_{k - 1},u_{k - 1}} \right\rbrack}} & \left( {{eq}.\mspace{14mu} 7} \right) \\ {{{\hat{x}}_{k}^{-} = {\sum\limits_{i = 0}^{2L}\; {W_{i}^{(m)}\chi_{i,{k{k - 1}}}^{*}}}}{P_{k}^{-} = {{\sum\limits_{i = 0}^{2L}\; {{W_{i}^{(c)}\left\lbrack {\chi_{i,{k{k - 1}}}^{*} - {\hat{x}}_{k}^{-}} \right\rbrack}\left\lbrack {\chi_{i,{k{k - 1}}}^{*} - {\hat{x}}_{k}^{-}} \right\rbrack}^{T}} + R^{v}}}} & \left( {{eq}.\mspace{14mu} 8} \right) \\ {{{{}_{}^{}{}_{k{k - 1}}^{}} = \left\lbrack {{{\hat{x}}_{k}^{-}\mspace{14mu} {\hat{x}}_{k}^{-}} + {\gamma \sqrt{P_{k}^{-}}\mspace{14mu} {\hat{x}}_{k}^{-}} - {\gamma \sqrt{P_{k}^{-}}}} \right\rbrack}{_{k{k - 1}} = {H\left\lbrack \chi_{k{k - 1}} \right\rbrack}}} & \left( {{eq}.\mspace{14mu} 9} \right) \\ {{\hat{y}}_{k}^{-} = {\sum\limits_{i = 0}^{2L}\; {W_{i}^{(m)}_{i,{k{k - 1}}}}}} & \left( {{eq}.\mspace{14mu} 10} \right) \end{matrix}$

Equations to update the measurements:

$P_{{\hat{y}}_{k},{\overset{\sim}{y}}_{k}} = {{\sum\limits_{i = 0}^{2L}\; {{W_{i}^{(c)}\left\lbrack {_{i,{k{k - 1}}} - {\hat{y}}_{k}^{-}} \right\rbrack}\left\lbrack {_{i,{k{k - 1}}} - {\hat{y}}_{k}^{-}} \right\rbrack}^{T}} + R^{n}}$ $\begin{matrix} {P_{x_{k}y_{k}} = {\sum\limits_{i = 0}^{2L}\; {{W_{i}^{(c)}\left\lbrack {\chi_{i,{k{k - 1}}} - {\hat{x}}_{k}^{-}} \right\rbrack}\left\lbrack {_{i,{k{k - 1}}} - {\hat{y}}_{k}^{-}} \right\rbrack}^{T}}} & \left( {{eq}.\mspace{14mu} 11} \right) \\ {_{k} = {P_{x_{k}y_{k}}P_{{\overset{\sim}{y}}_{k}{\hat{y}}_{k}}^{- 1}}} & \left( {{eq}.\mspace{14mu} 12} \right) \\ {{\hat{x}}_{k} = {{\hat{x}}_{k}^{-} + {_{k}\left( {y_{k} - {\hat{y}}_{k}^{-}} \right)}}} & \left( {{eq}.\mspace{14mu} 13} \right) \\ {P_{k} = {P_{k}^{-} - {_{k}P_{{\hat{y}}_{k}{\overset{\sim}{y}}_{k}}_{k}^{T}}}} & \left( {{eq}.\mspace{14mu} 14} \right) \end{matrix}$

Where R^(v) represents the covariance matrix of the process noise and R^(n) represents the covariance matrix of the measurement noise.

Preferably a “Square-Root UKF” is used as a refinement of the determination of the state. The following description of this variant of a Kalman filter is also taken from “The Square-Root Unscented Kalman Filter for State and Parameter-Estimation”.

{circumflex over (x)} ₀=

[x _(n)]S ₀=chol{

(x ₀ −{circumflex over (x)} ₀)(x ₀ −{circumflex over (x)} ₀)^(T)}  (eq. 16)

for kϵ(1, . . . , ∞),

Determining and updating the Sigma point:

$\begin{matrix} {\chi_{k - 1} = \left\lbrack {{{\hat{x}}_{k - 1}\mspace{14mu} {\overset{\sim}{x}}_{k - 1}} + {\gamma \; S_{k}\mspace{14mu} {\hat{x}}_{k - 1}} - {\gamma \; S_{k}}} \right\rbrack} & \left( {{eq}.\mspace{14mu} 17} \right) \\ {\chi_{k{k - 1}}^{*} = {F\left\lbrack {\chi_{k - 1},u_{k - 1}} \right\rbrack}} & \left( {{eq}.\mspace{14mu} 18} \right) \\ {\chi_{k{k - 1}}^{*} = {\sum\limits_{i = 0}^{2L}\; {W_{i}^{(m)}\chi_{i,{k{k - 1}}}^{*}}}} & \left( {{eq}.\mspace{14mu} 19} \right) \\ {S_{k}^{-} = {{qr}\left\{ \left\lbrack {\sqrt{W_{1}^{(c)}}\left( {\chi_{{1\text{:}2L},{k{k - 1}}}^{*} - {\hat{x}}_{k}^{-}} \right)\mspace{14mu} \sqrt{R^{v}}} \right\rbrack \right\}}} & \left( {{eq}.\mspace{14mu} 20} \right) \\ {S_{k}^{-} = {{cholupdate}\left\{ {S_{k}^{-},{\chi_{0,k}^{*} - {\hat{x}}_{k}^{-}},W_{0}^{(c)}} \right\}}} & \left( {{eq}.\mspace{14mu} 21} \right) \\ {{{}_{}^{}{}_{k{k - 1}}^{}} = \left\lbrack {{{\hat{x}}_{k}^{-}\mspace{14mu} {\hat{x}}_{k}^{-}} + {\gamma \; S_{k}^{-}\mspace{14mu} {\hat{x}}_{k}^{-}} - {\gamma \; S_{k}^{-}}} \right\rbrack} & \left( {{eq}.\mspace{14mu} 22} \right) \\ {_{k{k - 1}} = {H\left\lbrack \chi_{k{k - 1}} \right\rbrack}} & \left( {{eq}.\mspace{14mu} 23} \right) \\ {{\hat{y}}_{k}^{-} = {\sum\limits_{i = 0}^{2L}\; {W_{i}^{(m)}_{i,{k{k - 1}}}}}} & \left( {{eq}.\mspace{14mu} 24} \right) \end{matrix}$

Equations to update measurements:

$\begin{matrix} {S_{{\hat{y}}_{k}} = {{qr}\left\{ \left\lbrack {{\sqrt{W_{1}^{(c)}}\left\lbrack {_{{1\text{:}2L},k} - {\hat{y}}_{k}} \right\rbrack}\mspace{14mu} \sqrt{R_{k}^{n}}} \right\rbrack \right\}}} & \left( {{eq}.\mspace{14mu} 25} \right) \\ {S_{{\hat{y}}_{k}} = {{cholupdate}\left\{ {S_{{\hat{y}}_{k}},{_{0,k} - {\hat{y}}_{k}},W_{0}^{(c)}} \right\}}} & \left( {{eq}.\mspace{14mu} 26} \right) \\ {P_{x_{k}y_{k}} = {\sum\limits_{i = 0}^{2L}\; {{W_{i}^{(c)}\left\lbrack {\chi_{i,{k{k - 1}}} - {\hat{x}}_{k}^{-}} \right\rbrack}\left\lbrack {_{i,{k{k - 1}}} - {\hat{y}}_{k}^{-}} \right\rbrack}^{T}}} & \left( {{eq}.\mspace{14mu} 27} \right) \\ {{_{k} = {\left( {P_{x_{k}y_{k}}/S_{{\hat{y}}_{k}}^{T}} \right)/S_{{\overset{\sim}{y}}_{k}}}}{{\overset{\sim}{x}}_{k} = {{\hat{x}}_{k}^{-} + {_{k}\left( {y_{k} - {\hat{y}}_{k}^{-}} \right)}}}} & \left( {{eq}.\mspace{14mu} 28} \right) \\ {U = {_{k}S_{{\overset{\sim}{y}}_{k}}}} & \left( {{eq}.\mspace{14mu} 29} \right) \\ {S_{k} = {{cholupdate}\left\{ {S_{k}^{-},U,{- 1}} \right\}}} & \left( {{eq}.\mspace{14mu} 30} \right) \end{matrix}$

Where R^(v) represents the covariance matrix of the process noise and R^(n) represents the covariance matrix of the measurement noise.

REFERENCE NUMERALS

-   100 Method -   105 Motor vehicle -   110 Observer -   115 Physical model of the motor vehicle 

1-11. (canceled)
 12. A method (100) of determining driving state variables of a motor vehicle (105) using an observer (110), the method comprising: scanning input vectors (u) of variables that determine the driving state of the motor vehicle (105); scanning first output vectors (y) of the variables that describe the driving state of the motor vehicle (105); determining, with the observer (110), second output vectors (ŷ) of the variables that describe the driving state of the motor vehicle, based on the input vectors (u), weighting vectors (r) and state vectors ({circumflex over (x)}); and adapting (K), with the observer (110), the weighting vectors (r) based on a difference of the first and the second output vectors (y, ŷ); the observer (110) comprising a Kalman filter, which is formed as an Unscented Kalman Filter, and a covariance matrix of measurements (R^(n)) being adapted by a linear slave Kalman filter.
 13. The method (100) according to claim 12, wherein the observer (110) includes a Square Root Kalman Filter.
 14. The method (100) according to claim 12, wherein the input vectors (u) comprise a number of revolutions (n) or angular speeds (ω) of wheels (FL, FR, RL, RR) of the motor vehicle (105) and a wheel angle (δ) of the wheels (FL, FR, RL, RR).
 15. The method (100) according to claim 12, wherein the first and the second output vectors (y, ŷ) include accelerations (a) of the motor vehicle (105) in longitudinal and transversal directions as well as a yaw rate ({dot over (Ψ)}).
 16. The method (100) according to claim 12, further comprising determining, on a basis of the observer (110), the driving state variables that include at least a wheel force (F) in a longitudinal, a vertical, or a transversal direction; a wheel slip (S); a slip angle (a); a float angle (β); and a vehicle ground speed (V) in either the longitudinal or the transversal direction.
 17. The method (100) according to claim 12, further comprising determining the second output vector (ŷ) based on a physical model (f, h), and determining adhesive coefficients (μ) between tires of the motor vehicle (105) and a roadway on which the motor vehicle is traveling, and adapting the physical model (f, h) based on the coefficients of adhesion (μ).
 18. The method (100) according to claim 12, wherein adapting a covariance matrix of measurement (R^(n)) as follows: ${R_{k}^{n} = {{\frac{1}{m}{\sum\limits_{j = 1}^{m}\; {v_{k - j} \cdot v_{k - j}^{T}}}} - {P_{{\overset{\sim}{y}}_{k},{\overset{\sim}{y}}_{k + 1}}R_{k + 1}^{n}}}},$ wherein v_(k−j)=y_(k−j)−ŷ_(k−j) ⁻ is fixed and m≥lϵIN is arbitrarily chosen.
 19. A computer program product using program code means to implement a method (100) of determining driving state variables of a motor vehicle (105) using an observer (110), the method including: scanning input vectors (u) of variables that determine the driving state of the motor vehicle (105); scanning first output vectors (y) of the variables that describe the driving state of the motor vehicle (105); determining, with the observer (110), second output vectors (ŷ) of the variables that describe the driving state of the motor vehicle, based on the input vectors (u), weighting vectors (r) and state vectors({circumflex over (x)}); and adapting (K), with the observer (110), the weighting vectors (r) based on a difference of the first and the second output vectors (y, ŷ); the observer (110) comprising a Kalman filter, which is formed as an Unscented Kalman Filter, and a covariance matrix of measurements (Rn) being adapted by a linear slave Kalman filter; and the computer program product running on a processing device or is stored on a machine-readable data-storage medium.
 20. A device (110) for determining of driving state variable of a motor vehicle (105), the device implements a Kalman filter and being set to execute a method (100) for determining the driving state variable of the motor vehicle including: scanning input vectors (u) of variables that determine the driving state of the motor vehicle (105); scanning first output vectors (y) of the variables that describe the driving state of the motor vehicle (105); determining, with the observer (110), second output vectors (ŷ) of the variables that describe the driving state of the motor vehicle, based on the input vectors (u), weighting vectors (r) and state vectors ({circumflex over (x)}); and adapting (K), with the observer (110), the weighting vectors (r) based on a difference of the first and the second output vectors (y, ŷ); the observer (110) comprising a Kalman filter, which is formed as an Unscented Kalman Filter, and a covariance matrix of measurements (Rn) is adapted by means of a linear slave Kalman filter. 